#ifndef N_STRINGQUEUE_H
#define N_STRINGQUEUE_H
//----------------------------------------------------------------------------
/**
    @class nStringQueue
    @ingroup 
    @brief A scriptable queue of strings
    
    (c) 2006    Guillermo Jimenez Diaz
*/
//----------------------------------------------------------------------------

#include "kernel/nroot.h"
#include <queue>

#include <string>


//----------------------------------------------------------------------------
class nStringQueue : public nRoot
{
    public:
        /// constructor
        nStringQueue();
        /// destructor
        virtual ~nStringQueue();
		/**
		* Add a new element
		* @param The new aelement
		*/
		void add(const char *str);

		/**
		* Is the queue empty?
		* @return true if the queue is empty
		*/
		bool isempty();

		/**
		 * Get the first element
		 * @return the head element of the queue
		 */
		std::string getFront();

		/**
		 * Removes the first element of the queue
		 */
		void remFront();

	private:
		std::queue<std::string> impl;		
};

//----------------------------------------------------------------------------
#endif // N_STRINGQUEUE_H

